local Step = 0 local Values = {} local DeltaArray = {} local Update = 0.1 local Height = 2.5 local Width = 0.4 local Length = 32 local Parent = Instance.new("WorldModel",script) for i=1,Length do DeltaArray[i] = 0 end function Push(a) table.remove(DeltaArray,1) table.insert(DeltaArray,a) end local green = Color3.new(0,1,0) local yellow = Color3.new(1,1,0) local red = Color3.new(1,0,0) function evalCS(time) if time < 0.5 then return green:lerp(yellow,time*2) elseif time >= 0.5 then return yellow:lerp(red,(time-0.5)*2) end end local Parts = {} function UpdateParts() for i,AvgDelta in next,DeltaArray do local Part = Parts[i] if not Part then Part = Instance.new("Part",Parent) Parts[i] = Part Part.Anchored = true Part.CanCollide = false end local DeltaScale = math.min((AvgDelta/(Update))*(Height*2),1000)*2 Part.Size = Vector3.new(Width,DeltaScale,0.1) Part.Position = Vector3.new(i*Width,2+(DeltaScale/2),-5) Part.Color = evalCS(math.min(AvgDelta/(Update),1)*2) end end function AppendDelta(Delta) Step = Step+Delta Values[#Values+1] = Delta if Step>=Update then local ValuesFinal = Values local Total = 0 Values = {Delta} Step=Step-Update for i,delta in next,ValuesFinal do Total = Total+delta end Push(Total/#ValuesFinal) UpdateParts() end end game:GetService("RunService").Stepped:Connect(function(_,Delta) AppendDelta(Delta) end)